import 'dart:convert';
import 'dart:math';

import 'package:flutterlib/common/constants/constants.dart';
import 'package:flutterlib/common/utils/sp_utils.dart';
import 'package:flutterlib/common/utils/distance_utils.dart';
import 'package:flutterlib/model/user/user_entity.dart';


UserEntity get currentUser{
  final SettingsStore store =
  Provider.of<SettingsStore>(currentContext, listen: false);
  if(store.isLogin){
    return store.userEntity;
  }
  return null;
}

bool get isLogin{
  return currentUser != null;
}

int get currentUserId => currentUser?.uid??0;

void loginIn(str){
  var userEntity = UserEntity.fromJson(json.decode(str));
  SpUtils.putString(KEY_USER_PHONE_INFO, str);
  final SettingsStore store =
  Provider.of<SettingsStore>(currentContext, listen: false);
  store.setUserEntity(userEntity);
}

void loginOut(){
  SpUtils.putString(KEY_USER_PHONE_INFO, '');
  final SettingsStore store =
  Provider.of<SettingsStore>(currentContext, listen: false);
  store.setUserEntity(null);

}

UserEntity get userFromStore{

  var str = SpUtils.getString(KEY_USER_PHONE_INFO);
  if(str.length > 0){
    var userEntity = UserEntity.fromJson(json.decode(str));
    return userEntity;
  }else{
    return null;
  }
}

class UserCenter{
  UserCenter._();

  static final String KEY_USER_PHONE_INFO = "KEY_USER_PHONE_INFO";
  static final String KEY_JWT = "KEY_JWT";
  static UserCenter _UserCenter = UserCenter._();

  factory UserCenter(){
    return _UserCenter;
  }
  
  static UserEntity _userEntity;

  // static UserEntity getUserEntity() {
  //   // 读取持久化的UserInfo对象
  //   if (_userEntity != null) return _userEntity;
  //   String userJson = SpUtils.getString(KEY_USER_PHONE_INFO, defValue: "");
  //   // userJson = '''{
  //   //         "email": "",
  //   //         "group_id": 0,
  //   //         "home_page_show": 0,
  //   //         "individual_resume": "",
  //   //         "logo": "https://quhui123.oss-cn-hangzhou.aliyuncs.com/avator/1604886879_9.jpeg",
  //   //         "mobile": "",
  //   //         "nick_name": "chenting",
  //   //         "regdate": 0,
  //   //         "sex": 0,
  //   //         "status": 0,
  //   //         "uid": 9,
  //   //         "user_name": "chenting"
  //   //     }''';
  //   if (userJson.isNotEmpty) {
  //     _userEntity = UserEntity.fromJson(json.decode(userJson));
  //     return _userEntity;
  //   }
  //   return null;
  // }
  //
  // static String getJwt(){
  //   String jwt = SpUtils.getString(KEY_JWT, defValue: "");
  //   return jwt;
  // }
  //
  // //获取用户账号
  // static int getUid() {
  //   if (isLogin()) {
  //     return getUserEntity().uid;
  //   }
  //   return null;
  // }
  //
  //
  // /**
  //  * 判断是否登陆
  //  * @return
  //  */
  // static bool isLogin() {
  //   return getUserEntity() != null;
  // }


}